The Universal Mobile Telecommunication System (UMTS) is one of the third generation mobile communication technologies designed to succeed GSM. 3GPP Long Term Evolution (LTE) is a project within the 3rd Generation Partnership Project (3GPP) to improve the UMTS standard to cope with future requirements in terms of improved services such as higher data rates, improved efficiency, lowered costs etc. UMTS Terrestrial Radio Access Network (UTRAN) is the radio access network of a UMTS system and evolved UTRAN (E-UTRAN) is the radio access network of an LTE system. As illustrated in FIG. 1, an E-UTRAN typically comprises user equipment (UE) 150 wirelessly connected to a radio base station (RBS) 100, commonly referred to as an eNodeB.
Modern wireless communication systems targeted for packet based communication often include hybrid automatic repeat request (HARQ) functionality on the physical layer to achieve robustness against the impairments of the radio channel. LTE and UMTS are two examples of systems in which such functionality is available. The basic idea behind HARQ is to combine forward error correction (FEC) with automatic repeat request (ARQ). In FEC coding, redundancy is introduced in the transmitted block of information bits. Parity bits are added to the information bits prior to the transmission, and the parity bits are computed from the information bits using a method given by the coding structure used. On the receiving side, errors introduced during transmission of the information bits may be corrected when decoding. In an ARQ scheme, the receiver uses an error-detecting code to detect if the received block of information bits is in error or not. If no error is detected, a positive acknowledgement (ACK) is sent to the transmitter, and if an error is detected, a negative acknowledgement (NACK) is sent. After a NACK, the transmitter will retransmit the same information again. In HARQ—being a combination of FEC and ARQ—the block of information bits (also known as a transport block (TPB)) is encoded and an error-detection code, such as cyclic redundancy check (CRC), is added to the block. After reception of the coded block, it is decoded and the error-detection code is used to check whether the decoding was successful or not. If the block of information was received without errors, an ACK is sent to the transmitter indicating that the transmission was successful and that the receiver is ready for a new block. On the other hand, if the block of information bits was not decoded correctly, a NACK is sent to the transmitter meaning that the receiver expects a retransmission of the same block. A further improvement is to combine the retransmissions with soft-combining functionality, where the receiver does not discard erroneously received blocks of information bits but buffers their soft-bit values and combines these values with the soft-bit values of the retransmitted blocks. This is often referred to as HARQ with soft combining.
The coded bits originating from a same block of information bits are referred to as a codeword. This is the terminology used in LTE to describe the output from a single HARQ process (comprising turbo encoding, rate matching, interleaving etc.) serving a particular TPB. The same TPB generates different codewords for each HARQ retransmission.
Multi-antenna techniques can significantly increase the data rates and reliability of a wireless communication system. The performance is in particular improved if both the transmitter and the receiver are equipped with multiple antennas. This results in a multiple-input multiple-output (MIMO) radio communication channel and such systems and related techniques are commonly referred to as MIMO. Several wireless standards nowadays support MIMO antenna deployments and MIMO related techniques such as spatial multiplexing, beam-forming and diversity.
In the general case, a multi-antenna configuration will consist of NT transmit antennas and NR receive antennas. Under certain conditions, it is possible to create up to NL=min{NT, NR} parallel “channels”, also called layers. Another commonly used term for layer is symbol stream. The signal on each layer will have a lower signal-to-noise ratio as the signal power is split between the layers. On the other hand, data can now be transmitted in parallel on the involved layers. The channel capacity can thus under favorable channel conditions grow essentially linearly with the number of antennas. This technique of exploiting the spatial dimension to simultaneously transmit on several layers is referred to as spatial multiplexing.
As mentioned above, the number of parallel signals that can be spatially multiplexed is upper limited by NL=min{NT, NR}. However, in many cases, the number of spatially multiplexed signals will be less than NL. In case of very bad channel conditions e.g., there is no gain of spatial multiplexing, and the multiple antennas should be used to improve the signal-to-noise ratio with beam-forming instead of using them for spatial multiplexing.
The use of spatial multiplexing aims at high data rates in favourable channel conditions, and spatial multiplexing is combined with either channel dependent or channel independent pre-coding. The pre-coding serves two purposes. When the number of signals to be spatially multiplexed equals the number of transmit antennas (NL=NT), the pre-coding can be used to orthogonalize the parallel transmissions, allowing for improved signal isolation at the receiver side through reduced inter-layer interference. When the number of signals to be spatially multiplexed is less than the number of transmit antennas (NL<NT), the pre-coding in addition provides the mapping of the NL spatially multiplexed signals to the NT transmit antennas.
An illustration of the structure of a transmitter employing pre-coded spatial multiplexing is provided in FIG. 2. As seen, a sequence of information carrying symbol vectors sk 202 is input to the pre-coder 201. k is an index pointing out the resource element corresponding to a channel use. A resource element may for example be a time interval, a window that spans time and/or frequency, or a spreading code depending on the radio technology used. The r symbols in sk 202 each belong to a specific layer 206 and r thus equals the number of layers and is referred to as the transmission rank. Each symbol vector 202 is multiplied by an NT×r pre-coder matrix Wk 203 to produce the corresponding pre-coded vector xk 204, which is then transmitted over the radio channel via the NT antenna ports 205. The pre-coded vector xk 204, transmitted over resource element k can thus be written as
                              x          k                =                              [                                                                                x                    k                                          (                      1                      )                                                                                                                                        x                    k                                          (                      2                      )                                                                                                                    ⋮                                                                                                  x                    k                                          (                                              N                        T                                            )                                                                                            ]                    =                                                    [                                                                                                    W                        k                                                  (                          11                          )                                                                                                                                    W                        k                                                  (                          12                          )                                                                                                            …                                                                                      W                        k                                                  (                                                      1                            ⁢                            r                                                    )                                                                                                                                                                        W                        k                                                  (                          21                          )                                                                                                                                    W                        k                                                  (                          22                          )                                                                                                            …                                                                                      W                        k                                                  (                                                      2                            ⁢                            r                                                    )                                                                                                                                                ⋮                                                              ⋮                                                              ⋱                                                              ⋮                                                                                                                          W                        k                                                  (                                                                                    N                              T                                                        ⁢                            1                                                    )                                                                                                                                    W                        k                                                  (                                                                                    N                              T                                                        ⁢                            2                                                    )                                                                                                            …                                                                                      W                        k                                                  (                                                                                    N                              T                                                        ⁢                            r                                                    )                                                                                                                    ]                            ⁡                              [                                                                                                    s                        1                                                  (                          1                          )                                                                                                                                                                        s                        1                                                  (                          2                          )                                                                                                                                                ⋮                                                                                                                          s                        1                                                  (                          r                          )                                                                                                                    ]                                      =                                          W                k                            ⁢                              s                k                                                                        (        1        )            
The pre-coder matrix is often chosen to match the characteristics of the NR×NT MIMO channel Hk, resulting in so-called channel dependent pre-coding. The receiver estimates the channel and decides on a suitable pre-coding matrix from the code-book containing the set of available pre-coding matrices, and feeds back the information about the selected pre-coding matrix to the transmitter. For Frequency Division Duplex (FDD), channel dependent pre-coding is also commonly referred to as closed-loop pre-coding. The purpose of closed-loop pre-coding is to focus the transmit energy into a subspace in order to convey a large portion of the transmitted energy to the UE. In some cases, for example in the case of very high transmission rates, channel independent pre-coding is used instead as it is not possible to adapt the pre-coder matrix to the channel matrix fast enough.
As the pre-coder matrix in practice never will perfectly match the channel matrix for channel dependent pre-coding, there will always be some residual interference between the spatially multiplexed signals. This interference can be taken care of by means of non-linear receiver processing, such as successive interference cancellation (SIC). SIC is based on an assumption that the spatially multiplexed signals are separately coded before the spatial multiplexing (often referred to as multi-codeword transmission). With SIC, the receiver first demodulates and decodes one of the spatially multiplexed signals. The corresponding decoded data is then, if correctly decoded, re-encoded and subtracted from the received signals. A second spatially multiplexed signal can then be demodulated and decoded without any interference from the first signal, i.e. with an improved signal-to-noise ratio. The decoded data from the second signal is then, if correctly decoded, re-encoded and subtracted from the received signals before decoding of a third signal. These iterations continue until all spatially multiplexed signals have been demodulated and decoded.
In a MIMO system employing spatial multiplexing it may make sense to transmit data from several HARQ processes at once, also known as multi-codeword transmission. Such use of separate HARQ processes allows retransmissions to be carried out independently on different layers and can in principle lead to better resource utilization. If a single HARQ process is used on the contrary, a single corresponding codeword is instead distributed over all layers. Hence different number of HARQ processes or independently coded codewords can be employed, and a compromise between the two extremes of a single codeword transmitted on all layers and separate codewords transmitted on each layer can be achieved. Such a compromise is exploited in the downlink of LTE where a number of fixed codeword to layer mappings are used. The fixed mappings in an LTE-system with four transmitting antennas and four receiving antennas are illustrated in FIGS. 3a-3d, for the four different transmission ranks. In FIG. 3a, the channel conditions only allow for one single layer 302, and it is only possible to map a first modulated codeword 300 onto this layer 302. In the pre-coder 303, the modulated codeword may be mapped to the four transmitting antennas 304. In FIG. 3b, the channel conditions allow for two layers 302. In this case multi-codeword transmission is possible, and a first codeword 300 is mapped onto one of the layers, and a second codeword 301 is mapped onto the second layer. In FIG. 3c, there are three layers 302. A first codeword 300 is mapped onto one of the layers, and a second codeword 301 is mapped onto both of the remaining layers by passing the codeword through a serial to parallel conversion device 305. In FIG. 3d, there are four layers 302, and a first codeword 300 is mapped onto two of the layers and a second codeword 301 onto the two remaining layers.
A problem with existing solutions for multi-codeword transmission (i.e. transmitting several separately coded blocks of information bits simultaneously) is that one ACK/NACK per codeword typically needs to be fed back from the receiver to the transmitter. This may substantially increase the signaling overhead since ACK/NACKs often have tough error rate requirements due to the importance to receive them correctly which makes them resource demanding.
To mitigate this problem, the known ACK/NACK compression technique of so-called ACK/NACK bundling may be used. ACK/NACK bundling means that one single ACK/NACK covers multiple blocks of information bits. Hence, all coded blocks of information bits or codewords within a bundled set of codewords need to be correctly received in order for an ACK to be sent. If one single codeword is erroneously received, a NACK will be sent and all blocks of information bits of the bundled set need to be retransmitted. A problem with the ACK/NACK bundling is thus the loss of performance due to the fact that blocks of information bits that are already received correctly are retransmitted. A significant performance loss in the order of one dB may occur in the case of two bundled codewords.
An alternative to ACK/NACK bundling is of course to use a single codeword transmission scheme. This automatically avoids the signaling overhead of multiple ACK/NACKs but suffers on the other hand from difficulties in finding advanced receiver architectures for non-linear processing with reasonable complexity. A SIC type of receiver can only be used with multi-codeword transmission, as already mentioned above.